﻿using System;

class Program
{
    static void Main()
    {
        double height = 100; // 初始高度
        double totalDistance = 0; // 总经过距离

        Console.WriteLine("小球从100米高度自由落下，每次落地后反跳回原高度的一半：");
        Console.WriteLine("次数\t落地时总距离(m)\t反弹高度(m)");
        Console.WriteLine("----------------------------------------------");

        for (int i = 1; i <= 10; i++)
        {
            if (i == 1)
            {
                // 第一次落下
                totalDistance += height;
            }
            else
            {
                // 后续每次：反弹 + 落下
                totalDistance += 2 * height;
            }

            // 反弹高度为当前高度的一半
            height /= 2;

            Console.WriteLine($"{i}\t{totalDistance:F2}\t\t\t{height:F2}");
        }

        Console.WriteLine("\n结果：");
        Console.WriteLine($"第10次落地时，共经过 {totalDistance:F2} 米");
        Console.WriteLine($"第10次反弹高度为 {height:F2} 米");
    }
}